package cn.xk.basic.mapper;

import cn.xk.basic.query.BaseQuery;
import cn.xk.user.domain.User;

import java.util.List;

public interface BaseMapper<T> {
        /**
         * 添加
         * @param t
         */
        void save(T t);

        /**
         * 修改
         * @param t
         */
        void update(T t);

        /**
         * 删除
         * @param id
         */
        void del(Long id);

        /**
         * 查询所有
         * @return
         */
        List<T> loadAll();

        /**
         * 查询单个
         * @param id
         * @return
         */
        T loadById(Long id);

        /**
         * 分页查询：查询总数量
         * @param baseQuery
         * @return
         */
        Integer queryCount(BaseQuery baseQuery);

        /**
         * 分页查询：查询当前页的分页数据
         * @param baseQuery
         * @return
         */
        List<T> queryData(BaseQuery baseQuery);

        /**
         * 批量删除
         * @param ids
         */
        void patchDelete(List<Long> ids);


}